package com.hoshiicloud.user.param.supppiler;

import com.hoshiicloud.common.validate.annotations.Fax;
import com.hoshiicloud.common.validate.annotations.IdCard;
import com.hoshiicloud.common.validate.annotations.Mobile;
import com.hoshiicloud.common.validate.annotations.Telephone;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 新增平台机构表参数
 * </p>
 *
 * @author campchen
 * @since 2019-04-28
 */

@Data
@ApiModel(value = "新增平台机构表", description = "新增平台机构表")
public class PlatOrganizationAddParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "平台ID 由系统自动传递", dataType = "java.lang.Long", required = true,example = "3234906557745463478")
    @NotNull(message = "平台ID不能为空")
    private Long platId;

    @ApiModelProperty(name = "departmentId",value = "负责部门ID", example = "3171776001692663856",required = true)
    private Long departmentId;

    @ApiModelProperty(name = "organizationTypeId", value = "采购商类型（来源于采购商类型）来源 organization_type", required = true, dataType = "java.lang.Long", example = "3171776001692663920")
    private Long organizationTypeId;

    @ApiModelProperty(value = "0-跨境采购商 1-国内采购商", required = true, example = "1")
    private Integer type;

    @ApiModelProperty(value = "上级机构",example = "0",required = true)
    private Long parentId;

    @ApiModelProperty(value = "部门或事业部名称", required = true)
    @NotNull(message = "平台ID不能为空")
    private String name;

    @ApiModelProperty(value = "负责人", required = true)
    @NotNull(message = "负责人不能为空")
    private String charge;

    @ApiModelProperty(value = "身份证号码", required = true,example = "362229201908051458")
    @NotNull(message = "身份证号码不能为空")
    @IdCard(message = "身份证号码格式有误")
    private String idCard;

    @ApiModelProperty(name = "accountType", value = "账户类型 1-企业账户 2-个人账户",required = true)
    private Integer accountType;

    @ApiModelProperty(name = "accountName", value = "户名(开户名称)",required = true)
    private String accountName;

    @ApiModelProperty(value = "对公帐号", required = true)
    @NotNull(message = "对公帐号不能为空")
    private String bankNumber;

    @ApiModelProperty(value = "银行名称", required = true)
    @NotNull(message = "银行名称不能为空")
    private String bankName;

    @ApiModelProperty(value = "所在支行", required = true)
    @NotNull(message = "所在支行不能为空")
    private String bankAddress;

    @ApiModelProperty(value = "税务登记号",required = true)
    private String taxation;

    @ApiModelProperty(value = "开票号",required = true)
    private String piaohao;

    @ApiModelProperty(value = "电话号码",example = "0591-8786098",required = true)
    @Telephone(message = "电话号码格式有误")
    private String telphone;

    @ApiModelProperty(value = "手机号码",example = "13997807009",required = true)
    @Mobile(message = "手机号码格式有误")
    private String mobile;

    @ApiModelProperty(value = "传真",example = "1234-1234567",required = true)
    @Fax(message = "传真格式有误")
    private String fax;

    @ApiModelProperty(value = "主页",required = true)
    private String home;

    @ApiModelProperty(value = "邮件",required = true)
    private String email;

    @ApiModelProperty(value = "公司地址",required = true)
    private String address;

    @ApiModelProperty(value = "发货地址",required = true)
    private String goodsAddress;

    @ApiModelProperty(value = "仓库地址",required = true)
    private String whouseAddress;

    @ApiModelProperty(value = "结算方式（结算方式表）", required = true, example = "3480758903907516419")
    private Long paymentId;
    @ApiModelProperty(name = "applyType", value = "1-法定代表人 2-经营负责人",required = true)
    private Integer applyType;

    @ApiModelProperty(name = "applyIdNumber", value = "申请人身份证号码",required = true)
    private String applyIdNumber;

    @ApiModelProperty(name = "applyName", value = "申请人姓名",required = true)
    private String applyName;

    @ApiModelProperty(name = "applyAddress", value = "申请人地址",required = true)
    private String applyAddress;

    @ApiModelProperty(name = "applyIssuedby", value = "申请人签发机关",required = true)
    private String applyIssuedby;

    @ApiModelProperty(name = "applySex", value = "申请人性别",required = true)
    private String applySex;

    @ApiModelProperty(name = "applyBirthplace", value = "申请人籍贯",required = true)
    private String applyBirthplace;

    @ApiModelProperty(name = "applyBirth", value = "申请人出生日期",required = true)
    private String applyBirthday;

    @ApiModelProperty(name = "applyIdFront", value = "申请人身份证正面",required = true)
    private String applyIdFront;

    @ApiModelProperty(name = "applyIdBack", value = "申请人身份证反面",required = true)
    private String applyIdBack;

    @ApiModelProperty(name = "chargeTelphone", value = "负责人电话",required = true)
    private String chargeTelphone;

    @ApiModelProperty(name = "chargeWeixin", value = "负责人微信",required = true)
    private String chargeWeixin;

    @ApiModelProperty(name = "chargeEmail", value = "负责人邮箱",required = true)
    private String chargeEmail;

    @ApiModelProperty(name = "province", value = "省份",required = true)
    private Integer province;

    @ApiModelProperty(name = "provinceName", value = "省份名",required = true)
    private String provinceName;

    @ApiModelProperty(name = "city", value = "城市",required = true)
    private Integer city;

    @ApiModelProperty(name = "cityName", value = "城市名称",required = true)
    private String cityName;

    @ApiModelProperty(name = "district", value = "地区",required = true)
    private Integer district;

    @ApiModelProperty(name = "districtName", value = "地区名",required = true)
    private String districtName;

    @ApiModelProperty(name = "street", value = "街道",required = true)
    private Integer street;

    @ApiModelProperty(name = "streetName", value = "街道名",required = true)
    private String streetName;

    @ApiModelProperty(value = "推荐人ID  来源于 合作伙伴",example = "3481547631701819399",required = true)
    private Long referrerId;

    @ApiModelProperty(value = "创建人 由系统自动传递", required = true, example = "test777")
    private String createdBy;

    @ApiModelProperty(value = "联系人",required = true)
    private String contacts;

    @ApiModelProperty(value = "邀请码",required = true)
    private String invitedCode;

    @ApiModelProperty(value = "微信号",required = true)
    private String weixin;

    @ApiModelProperty(value = "公司简介",required = true)
    private String profile;
}
